
  \section{Introduzione}
  \begin{frame}
    \frametitle{Introduzione}
    \begin{center}
      \textit{``Prevediamo la realizzazione di un'applicazione di tipo POS, 
specifica per un negozio di videogames. Il sistema è centrato sulla vendita di 
videogiochi, console, manuali, accessori, gadget e sul loro scambio, prevedendo 
politiche di riciclo/rivendita dell'usato.''}
    \end{center}
    \begin{figure}
     \centering
     \includegraphics[scale=0.06]{loki_img/GSA.png}
    \end{figure}
  \end{frame}
  
  \begin{frame}
    \frametitle{Processo di sviluppo: UP}    
    \begin{itemize}
	\item Iterativo, evolutivo e incrementale
	\begin{itemize}
	 \item Timebox
	\end{itemize}
	\item Guidato dai casi d'uso
	\item Guidato dal rischio
	\item Supporta le metodologie agili
    \end{itemize}
  \end{frame}

  \begin{frame}
   \frametitle{Timebox ed evoluzione di GSA}
   \begin{figure}[ht]
    \centering
    \includegraphics[width=\textwidth, 
keepaspectratio=true]{loki_img/commits.png}
   \end{figure}
   \begin{figure}[ht]
    \centering
    \includegraphics[width=0.9\textwidth, 
keepaspectratio=true]{loki_img/piano_crescita.png}
   \end{figure}
  \end{frame}
  
  \subsection{Index}
  \begin{frame}
   \frametitle{Struttura della presentazione}
   \begin{itemize}
    \item Ideazione:
    \begin{itemize}
     \item breve descrizione di GSA
    \end{itemize}
    \item Iterazione 1:
    \begin{itemize}
      \item vendita $\Longrightarrow$ java RMI
    \end{itemize}
    \item Iterazione 2:
    \begin{itemize}
      \item elabora vendita $\Longrightarrow$ db4o
    \end{itemize}
    \item Iterazione 3:
    \begin{itemize}
      \item gestisci inventario \& prenota prodotto $\Longrightarrow$ questione 
di quantit\`a
    \end{itemize}
    \item Iterazione 4:
    \begin{itemize}
      \item gestisci forniture $\Longrightarrow$ ultimi dettagli \& 
progettazione delle interfacce
    \end{itemize}
   \end{itemize}
  \end{frame}
  
  \section{Ideazione}
  \begin{frame}
   \frametitle{GameShop Advance}
   \begin{itemize}
    \item \`E un progetto d'esame
    \begin{itemize}
	\item nessun committente
	\item propone innovazione nella gestione di un negozio
    \end{itemize}
    \item Documentazione prodotta:	
	\begin{itemize}
		\item visione
		\item glossario
		\item specifiche supplementari
		\item casi d'uso
	\end{itemize}
   \end{itemize}
  \end{frame}
  
  \begin{frame}
   \frametitle{Caratteristiche principali}
    \begin{itemize}
	\item Acquisizione di vendite e prenotazioni
	\item Autorizzazione dei pagamenti
	\item Ritiro dell'usato
	\item Regole di business personalizzabili
	\item Indicizzazione dei prodotti e ricerca informatizzata
	\item Gestione dell'inventario
    \end{itemize}
  \end{frame}
 
  \begin{frame}
   \frametitle{Specifiche supplementari}
   \begin{itemize}
       \item Architettura distribuita
       \item Robustezza di fronte ai guasti
       \begin{itemize}
        \item Ripristinabilit\`a
       \end{itemize}
       \item Integrazione in sistemi esterni (\textit{catene di negozi})
       \item Pagamenti con tecnologia NFC
       \item ...
    \end{itemize}
  \end{frame}

  \begin{frame}
   \frametitle{Regole di business}
   \begin{itemize}
	\item Tessere fedelt\`a per i clienti (possibilit\`a di distinguere tra 
tipologie di clienti)
	\item Sconti:
	\begin{itemize}
	 \item sulle vendite
	 \item sulle prenotazioni
	 \item sui prodotti
	\end{itemize}
	\item Scambi tra nuovo e usato
	\item Regole sulle imposte fiscali
	\item Premi per i dipendenti
	\item ...
   \end{itemize}
  \end{frame}
  
  \subsection{Requisiti funzionali}
  \begin{frame}
   \frametitle{Casi d'uso}
     \begin{minipage}[t]{0.45\textwidth}
	\begin{itemize}
		\item Casi d'uso: 17
		\item I casi d'uso sono testo (Requisiti funzionali)
		\item 3 scritti in formato dettagliato
		\item 4 scritti in modo informale
		\item Gli altri in forma breve
	\end{itemize}
    \end{minipage}
	\hfill
	\begin{minipage}[t]{0.45\textwidth}
	 \begin{figure}
		\centering
		\includegraphics[scale=0.2]{loki_img/use_cases.png}
		\vfill
	 \end{figure}

	\end{minipage}
   \end{frame}
  
  \subsection{Preparazione allo sviluppo}
  \begin{frame}
   \frametitle{Ambiente di sviluppo}
   \begin{itemize}
    \item CASE: Visual Paradigm 10.2
    \item IDE: Netbeans 7.1
    \item Tools: 
    \begin{itemize}
     \item JFormDesigner per la realizzazione delle interfacce
     \item Hamachi per creare reti private
    \end{itemize}
    \item Versionamento:
    \begin{itemize}
     \item svn: xp-dev
     \item github: https://github.com/GameShopAdvance/GameShop-Advance.git
    \end{itemize}
   \end{itemize}
  \end{frame}
  
  \begin{frame}
      \frametitle{Esplorazione e studio di Java RMI}
      \begin{itemize}
% 	    \item Punto di interesse per la fattibilit\`a del progetto
	    \item Studio della tecnologia e delle 
best-practice
	    \item Sviluppo di programmi di prova:
	    \begin{itemize}
		\item remotizzazione di classi
		\item trasmissione di oggetti per valore
		\item creazione di server remoti
	    \end{itemize}
      \end{itemize}
  \end{frame}
  
  \section{Iterazione 1}
  \subsection{Scenario}
  \begin{frame}
    \frametitle{Elabora Vendita}
    \begin{itemize}
      \item \`E uno scenario noto in letteratura: vedi 
Larman
	\begin{itemize}
		\item Non si affronter\`a in dettaglio il problema della vendita
	\end{itemize}
	\vspace{1cm}
	\item Perch\`e \`e stato scelto?
	\begin{itemize}
		\item Il progetto era agli avvii
		\item Criticit\`a: architettura fisica
	\end{itemize}
    \end{itemize}
  \end{frame}
  
  \subsection{Cenni...}
  \begin{frame}
    \frametitle{Modello di dominio}
    \begin{figure}
     \centering
     \includegraphics[scale=0.4]{loki_img/modello_dominio.png}
    \end{figure}
  \end{frame}
  
  \begin{frame}
    \frametitle{SSD}
    \begin{figure}
     \centering
     \includegraphics[scale=0.4]{loki_img/elabora_vendita.png}
    \end{figure}
  \end{frame}
  
  \subsection{La criticit\`a}
  \begin{frame}
    \frametitle{Avviare una vendita}
    \begin{figure}[t]
     \centering
     \includegraphics[width=\textwidth]{loki_img/avviaNuovaVendita.png}
    \end{figure}
    \begin{itemize}
     \item Chi scatena l'evento di sistema?
	\begin{itemize}
	 \item Semplice $\Longrightarrow$ il commesso
	\end{itemize}
     \item Come \`e possibile eseguire avviaNuovaVendita?
     \item Dove risieder\`a la logica applicativa?
     \begin{itemize}
      \item Cosa c'\`e sui client? E sul server?
     \end{itemize}
    \end{itemize}
  \end{frame}
 
  \begin{frame}
    \frametitle{Tecnologia Java RMI}
    \begin{figure}
	\centering
	\includegraphics[width=0.95\textwidth]{loki_img/RMI.png}
    \end{figure}
  \end{frame}
  
  \begin{frame}
    \frametitle{Risposte}
    \begin{itemize}
	\item La logica applicativa \`e tutta sul server
	\item Il terminale commesso si occupa \textit{esclusivamente} di 
presentazione
	\item Quindi:
	\begin{itemize}
		\item Meno duplicazioni
		\item Pi\`u mantenibilit\`a
		\item Maggiore qualit\`a del software
	\end{itemize}
	\item Per realizzare l'operazione di sistema:
	\begin{itemize}
		\item \`E necessario un oggetto remoto: Cassa
		\item I client chiedono oggetti Cassa al registro RMI?
	\end{itemize}
    \end{itemize}
  \end{frame}
  
  \subsection{Design}
  \begin{frame}
    \frametitle{Problema di creazione: Cassa}
    \begin{figure}
	\centering
	\includegraphics[width=0.95\textwidth]{loki_img/creaCassa.png}
    \end{figure}
  \end{frame}
  
%   \begin{frame}
%     \frametitle{Factory Remota}
%     \begin{figure}
% 	\centering
% 	\includegraphics[width=\textwidth]{loki_img/avviamento_server.png}
%     \end{figure}
%   \end{frame}
  
  \begin{frame}
    \frametitle{Il client: recuperare una cassa}
    \begin{figure}
	\centering
\includegraphics[width=\textwidth]{loki_img/getInstance_sale_controller.png}
    \end{figure}
  \end{frame}
  
  \begin{frame}
    \frametitle{Il client: avviare una vendita}
    \begin{figure}
	\centering
\includegraphics[width=\textwidth]{loki_img/avviaVendita_client.png}
    \end{figure}
  \end{frame}
  
  \subsection{Riepilogo}
  \begin{frame}
    \frametitle{Fine iterazione}
    \begin{figure}
      \centering
	\includegraphics[scale=0.5]{loki_img/architettura_fisica.png}
    \end{figure}
  \end{frame}
  